In a data center, many processors may be operating and running a multitude of applications at any given time. A scheduler, or scheduling software, may determine on which processor an application is to be run. The processor may have access for storing information in a cache, such as a level 3 (L3) cache, that is associated with the processor. Additionally, each processor may include multiple compute units, (e.g., cores, core pairs, threads), that can run different applications within the processor concurrently. When an application is running on a processor, information relating to that application is stored in, and extracted out of, the L3 cache associated with that processor.
Since each application may have a different Quality of Service (QoS) requirement, when an application having a lower QoS requirement is running on one of the compute units, an application having a higher QoS requirement cannot be run efficiently on another compute unit within the processor because of sharing of resources in the L3 cache. Accordingly, the application scheduler will run that application on another processor which does not have a compute unit running an application having a lower QoS requirement. This imbalance in the QoS requirements of applications and sharing of compute units results in inefficient utilization of processors across the datacenter.